Amazon S3 Express One Zone ディレクトリバケットを Mountpoint for Amazon S3 でマウントしてみた #AWSreInvent
Amazon S3 Express One Zone ストレージクラスの登場と同時に Mountpoint for Amazon S3 へ対応しました。さっそく EC2 にマウント可能か試してみました。
Mountpoint for Amazon S3 now supports the Amazon S3 Express One Zone storage class
Amazon S3 Express One Zone とは
re:Invent 2023 で発表された新しいストレージクラスです。S3 Standard と比べると耐久性を多少犠牲にして高パフォーマンスを実現したストレージクラスです。大量のデータを処理する AL/ML トレーニングや、ゲノム解析などのワークロードでは EC2 にマウントして使いたい場面があるのではないでしょうか。
やってみた
EC2(Amazon Linux 2023)に Moutpoint for Amazon S3(v1.3.1)を使い S3 Express One Zone をマウントしてみます。
EC2 に必要な IAM ポリシー
公式ドキュメントを参考にしました。
IAM identity-based policies for S3 Express One Zone - Amazon Simple Storage Service
私が確認したタイミングではドキュメント記載のポリシーだとエラーになりました。修正した結果が以下になります。
Resource
の S3 Express One Zone の ARN を差し替えてご利用ください
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessRegionalEndpointAPIs", "Effect": "Allow", "Action": [ "s3express:DeleteBucket", "s3express:DeleteBucketPolicy", "s3express:CreateBucket", "s3express:PutBucketPolicy", "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets" ], "Resource": "arn:aws:s3express:us-east-1:123456789012:bucket/mountpoint-for-s3--use1-az4--x-s3/*" }, { "Sid": "AllowCreateSession", "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "*" } ] }
補足
AmazonS3FullAccess
のポリシーでも S3 Express One Zone(s3express
)は非対応でした。なお、AmazonS3ExpressFullAccess
的な管理ポリシーは確認できませんでした。
参考: AmazonS3FullAccess
のポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "s3-object-lambda:*" ], "Resource": "*" } ] }
マウントコマンド
OS は Amazon Linux 2023 を利用しています。
wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm sudo yum install ./mount-s3.rpm -y
Mountpoint for Amazon S3 はバージョン1.3.0
から S3 Express One Zone をサポートしています。
$ mount-s3 --version mount-s3 1.3.1
/mnt/s3
ディレクトリに S3 Express One Zone ディレクトリバケットをマウントしてみました。
$ sudo /mnt/s3 $ sudo mount-s3 --allow-delete --allow-other mountpoint-for-s3--use1-az4--x-s3 /mnt/s3 bucket mountpoint-for-s3--use1-az4--x-s3 is mounted at /mnt/s3
読み書きテスト
# ディレクトリ確認 $ ll /mnt/s3 total 0 # ファイル書き込み $ touch test.txt $ sudo mv test.txt /mnt/s3 $ ll /mnt/s3 total 0 -rw-r--r--. 1 root root 0 Nov 30 20:03 test.txt
S3 Express One Zone のディレクトリバケット内にオブジェクト(ファイル)が書き込まれていることを確認できました。
# ファイル取り出し ※ --alow-delete 指定により可能です $ sudo mv /mnt/s3/test.txt . $ ll /mnt/s3 total 0
オブジェクトを削除できたことを確認できました。
おわりに
S3 Express One Zone を EC2 に必要な手順を紹介しました。Mountpoint for Amazon S3 経由でどの程度のパフォーマンスがでるかは別途検証しご紹介したいと思います。